﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Fluent="clr-namespace:Fluent">
	<Style x:Key="InRibbonGalleryToggleButtonStyle" TargetType="{x:Type Fluent:ToggleButton}">
    <Setter Property="Template" Value="{DynamicResource InRibbonGalleryToggleButtonControlTemplate}"/>
    <Setter Property="Height" Value="66"/>
    <Setter Property="Width" Value="Auto"/>
    <Setter Property="FontSize" Value="{DynamicResource DefaultFontSize}"/>
    <Setter Property="FontFamily" Value="{DynamicResource DefaultFontFamily}"/>
	<Setter Property="FocusVisualStyle" Value="{DynamicResource ControlStyleEmptyFocus}"/>
    <Setter Property="Foreground" Value="{DynamicResource DefaultFontBrush}"/>
    <Setter Property="FocusVisualStyle" Value="{DynamicResource ControlStyleEmptyFocus}"/>
    <Style.Triggers>
      <Trigger Property="Size" Value="Large">
        <Setter Property="Height" Value="66"/>
      </Trigger>
      <Trigger Property="Size" Value="Middle">
        <Setter Property="Height" Value="22"/>
      </Trigger>
      <Trigger Property="Size" Value="Small">
        <Setter Property="Height" Value="22"/>
        <Setter Property="Width" Value="31"/>
      </Trigger>
    </Style.Triggers>
  </Style>
  <ControlTemplate x:Key="InRibbonGalleryToggleButtonControlTemplate" TargetType="{x:Type Fluent:ToggleButton}">
    <Border x:Name="border" BorderThickness="1" CornerRadius="2" Background="{DynamicResource TransparentBrush}" BorderBrush="{DynamicResource TransparentBrush}" Height="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
      <Border x:Name="border1" Height="Auto" BorderBrush="{DynamicResource TransparentBrush}" BorderThickness="1" CornerRadius="2" Background="{DynamicResource TransparentBrush}">
      	<Grid Height="Auto">
      		<Rectangle x:Name="rectangle" StrokeThickness="0" Visibility="Collapsed">
      			<Rectangle.Fill>
      				<RadialGradientBrush Center="0.503,1" GradientOrigin="0.503,1" RadiusY="0.202">
      					<GradientStop Color="#7FFFFFFF" Offset="0"/>
      					<GradientStop Offset="1"/>
      				</RadialGradientBrush>
      			</Rectangle.Fill>
      		</Rectangle>
      		<StackPanel x:Name="stackPanel" Width="Auto" Orientation="Vertical" >
      			<Image x:Name="iconImage" HorizontalAlignment="Center" Height="32" Stretch="None" VerticalAlignment="Center" Source="{TemplateBinding LargeIcon}" Width="32" Margin="2" SnapsToDevicePixels="True" RenderOptions.BitmapScalingMode="NearestNeighbor"/>
      			<Fluent:TwoLineLabel x:Name="controlLabel" Text="{TemplateBinding Text}" Style="{DynamicResource TwoLineLabelStyle}" HorizontalAlignment="Center" VerticalAlignment="Stretch" Margin="2,-2,2,2" HasGlyph="True"/>
      		</StackPanel>
      	</Grid>
      </Border>
    </Border>
    <ControlTemplate.Triggers>
      <Trigger Property="Size" Value="Small">
        <Setter Property="Orientation" TargetName="stackPanel" Value="Horizontal"/>
        <Setter Property="Source" TargetName="iconImage" Value="{Binding Icon, RelativeSource={RelativeSource TemplatedParent}}"/>
        <Setter Property="HasTwoLines" TargetName="controlLabel" Value="False"/>
		<Setter Property="Text" TargetName="controlLabel" Value=""/>
        <Setter Property="Width" TargetName="iconImage" Value="16"/>
        <Setter Property="Height" TargetName="iconImage" Value="16"/>
        <Setter Property="Margin" TargetName="iconImage" Value="1,2,0,2"/>
        <Setter Property="Margin" TargetName="controlLabel" Value="-2,-2,2,2"/>
        <Setter Property="Width" TargetName="controlLabel" Value="10"/>
      </Trigger>
      <Trigger Property="Size" Value="Middle">
        <Setter Property="Orientation" TargetName="stackPanel" Value="Horizontal"/>
        <Setter Property="Source" TargetName="iconImage" Value="{Binding Icon, RelativeSource={RelativeSource TemplatedParent}}"/>
        <Setter Property="Width" TargetName="stackPanel" Value="Auto"/>
        <Setter Property="VerticalAlignment" TargetName="iconImage" Value="Center"/>
        <Setter Property="HasTwoLines" TargetName="controlLabel" Value="False"/>
        <Setter Property="Margin" TargetName="controlLabel" Value="2,-2,2,2"/>
        <Setter Property="VerticalAlignment" TargetName="border" Value="Stretch"/>
        <Setter Property="Width" TargetName="iconImage" Value="16"/>
        <Setter Property="Height" TargetName="iconImage" Value="16"/>
        <Setter Property="Margin" TargetName="iconImage" Value="1,2,2,2"/>
        <Setter Property="VerticalAlignment" TargetName="controlLabel" Value="Top"/>
      </Trigger>
      <Trigger Property="IsChecked" Value="True">
        <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonPressedOuterBorderBrush}"/>
        <Setter Property="Background" TargetName="border" Value="{DynamicResource ButtonPressedOuterBackgroundBrush}"/>
        <Setter Property="Background" TargetName="border1" Value="{DynamicResource ButtonPressedInnerBackgroundBrush}"/>
        <Setter Property="BorderBrush" TargetName="border1" Value="{DynamicResource ButtonPressedInnerBorderBrush}"/>
        <Setter Property="Visibility" TargetName="rectangle" Value="Visible"/>
      </Trigger>
	  			<Trigger Property="IsEnabled" Value="False">
				<Setter Property="Opacity" TargetName="iconImage" Value="0.5"/>
				<Setter Property="Opacity" TargetName="controlLabel" Value="0.5"/>
				<Setter Property="Effect" TargetName="iconImage">
					<Setter.Value>
						<Fluent:GrayscaleEffect/>
					</Setter.Value>
				</Setter>
			</Trigger>
      <MultiTrigger>
        <MultiTrigger.Conditions>
          <Condition Property="IsMouseOver" Value="True"/>
          <Condition Property="IsChecked" Value="False"/>
        </MultiTrigger.Conditions>
        <Setter Property="BorderBrush" TargetName="border1" Value="{DynamicResource ButtonHoverInnerBorderBrush}"/>
        <Setter Property="Background" TargetName="border1" Value="{DynamicResource ButtonHoverInnerBackgroundBrush}"/>
        <Setter Property="Background" TargetName="border" Value="{DynamicResource ButtonHoverOuterBackgroundBrush}"/>
        <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonHoverOuterBorderBrush}"/>
        <Setter Property="Visibility" TargetName="rectangle" Value="Visible"/>
      </MultiTrigger>	  
    </ControlTemplate.Triggers>
  </ControlTemplate> 
  <Style x:Key="InRibbonGalleryButton" TargetType="{x:Type Fluent:ToggleButton}">
  <Setter Property="FocusVisualStyle" Value="{DynamicResource ControlStyleEmptyFocus}"/>
  	<Setter Property="Template">
		<Setter.Value>
			<ControlTemplate TargetType="{x:Type Fluent:Button}">
				<Border BorderBrush="{DynamicResource ButtonBorderBrush}" BorderThickness="1,1,1,1" x:Name="border" Background="{DynamicResource ButtonBackgroundBrush}">
					<Border BorderThickness="1,1,1,1" x:Name="border1">
						<Grid x:Name="grid">
							<Path Margin="0,6,0,0" VerticalAlignment="Top" Height="1" Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF000000" Data="M0,0L1,0" HorizontalAlignment="Center" Width="7"/>
							<Path Margin="0,8,0,0" VerticalAlignment="Top" Height="3" Fill="#FF000000" Stretch="Fill" Stroke="#FF000000" Data="M0,0L1,1 2,0z" Width="5" HorizontalAlignment="Center" StrokeThickness="0"/>
						</Grid>
					</Border>
				</Border>
				<ControlTemplate.Triggers>
					<Trigger Property="IsEnabled" Value="False">
						<Setter Property="Opacity" TargetName="grid" Value="0.5"/>
						<Setter Property="Background" TargetName="border" Value="{DynamicResource ButtonDisabledBackgroundBrush}"/>
						<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonDisabledBorderBrush}"/>
					</Trigger>
					<MultiTrigger>
						<MultiTrigger.Conditions>
							<Condition Property="IsMouseOver" Value="True"/>
							<Condition Property="IsPressed" Value="False"/>
						</MultiTrigger.Conditions>
						<Setter Property="Background" TargetName="border" Value="{DynamicResource TransparentBrush}"/>
						<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonHoverOuterBorderBrush}"/>
						<Setter Property="BorderBrush" TargetName="border1" Value="{DynamicResource ButtonHoverInnerBorderBrush}"/>
						<Setter Property="Background" TargetName="border1" Value="{DynamicResource ButtonHoverInnerBackgroundBrush}"/>
					</MultiTrigger>
					<Trigger Property="IsPressed" Value="True">
						<Setter Property="Background" TargetName="border" Value="{DynamicResource ButtonPressedOuterBackgroundBrush}"/>
						<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonPressedOuterBorderBrush}"/>
						<Setter Property="BorderBrush" TargetName="border1" Value="{DynamicResource ButtonPressedInnerBorderBrush}"/>
						<Setter Property="Background" TargetName="border1" Value="{DynamicResource ButtonPressedInnerBackgroundBrush}"/>
					</Trigger>
				</ControlTemplate.Triggers>
			</ControlTemplate>
		</Setter.Value>
	</Setter>
  </Style>
  <Style x:Key="InRibbonGalleryRepeatButton" TargetType="{x:Type RepeatButton}">
  <Setter Property="FocusVisualStyle" Value="{DynamicResource ControlStyleEmptyFocus}"/>
  	<Setter Property="Template">
		<Setter.Value>
			<ControlTemplate TargetType="{x:Type RepeatButton}">
				<Border BorderBrush="{DynamicResource ButtonBorderBrush}" BorderThickness="1,1,1,1" x:Name="border" Background="{DynamicResource ButtonBackgroundBrush}">
					<Border BorderThickness="1,1,1,1" x:Name="border1">
						<ContentPresenter x:Name="contentPresenter"/>
					</Border>
				</Border>
				<ControlTemplate.Triggers>
					<Trigger Property="IsEnabled" Value="False">
						<Setter Property="Opacity" TargetName="contentPresenter" Value="0.5"/>
						<Setter Property="Background" TargetName="border" Value="{DynamicResource ButtonDisabledBackgroundBrush}"/>
						<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonDisabledBorderBrush}"/>
					</Trigger>
					<MultiTrigger>
						<MultiTrigger.Conditions>
							<Condition Property="IsMouseOver" Value="True"/>
							<Condition Property="IsPressed" Value="False"/>
						</MultiTrigger.Conditions>
						<Setter Property="Background" TargetName="border" Value="{DynamicResource TransparentBrush}"/>
						<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonHoverOuterBorderBrush}"/>
						<Setter Property="BorderBrush" TargetName="border1" Value="{DynamicResource ButtonHoverInnerBorderBrush}"/>
						<Setter Property="Background" TargetName="border1" Value="{DynamicResource ButtonHoverInnerBackgroundBrush}"/>
					</MultiTrigger>
					<Trigger Property="IsPressed" Value="True">
						<Setter Property="Background" TargetName="border" Value="{DynamicResource ButtonPressedOuterBackgroundBrush}"/>
						<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonPressedOuterBorderBrush}"/>
						<Setter Property="BorderBrush" TargetName="border1" Value="{DynamicResource ButtonPressedInnerBorderBrush}"/>
						<Setter Property="Background" TargetName="border1" Value="{DynamicResource ButtonPressedInnerBackgroundBrush}"/>
					</Trigger>
				</ControlTemplate.Triggers>
			</ControlTemplate>
		</Setter.Value>
	</Setter>
  </Style>
  <Style x:Key="{x:Type Fluent:InRibbonGallery}" TargetType="{x:Type Fluent:InRibbonGallery}">
    	<Style.Triggers>
  		<Trigger Property="IsCollapsed" Value="True">
  			<Setter Property="Margin" Value="0"/>
  		</Trigger>        
  	</Style.Triggers>
    <Setter Property="FocusVisualStyle" Value="{DynamicResource ControlStyleEmptyFocus}"/>
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type Fluent:InRibbonGallery}">
        	<Grid Width="Auto" Height="Auto" x:Name="PART_LayoutRoot" HorizontalAlignment="Left" VerticalAlignment="Top">
        		<Border Width="Auto" BorderThickness="1,1,1,1" CornerRadius="0,1,1,0" BorderBrush="{DynamicResource InRibbonGalleryBorderBrush}" ClipToBounds="True" Margin="0,0,0,0" x:Name="border" Height="60" HorizontalAlignment="Left" VerticalAlignment="Top">
        			<Grid Width="Auto" Height="Auto">
        				<Fluent:RibbonListBox
        					x:Name="PART_ListBox"
        					DisplayMemberPath="{TemplateBinding DisplayMemberPath}"
        					ItemBindingGroup="{TemplateBinding ItemBindingGroup}"
        					ItemContainerStyle="{TemplateBinding ItemContainerStyle}"
        					ItemContainerStyleSelector="{TemplateBinding ItemContainerStyleSelector}"
        					ItemStringFormat="{TemplateBinding ItemStringFormat}"
        					ItemTemplate="{TemplateBinding ItemTemplate}"
        					ItemTemplateSelector="{TemplateBinding ItemTemplateSelector}"
        					IsTextSearchEnabled="{TemplateBinding IsTextSearchEnabled}"
        					ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
                  BorderThickness="0,0,0,0" Background="{DynamicResource GalleryBackgroundBrush}"                                        
                  >
        					<Fluent:RibbonListBox.Resources>
        						<Style TargetType="{x:Type ScrollBar}">
        							<Setter Property="Template">
        								<Setter.Value>
        									<ControlTemplate TargetType="{x:Type ScrollBar}">
        										<StackPanel HorizontalAlignment="Right" Margin="0,-1,-1,0">
        											<RepeatButton x:Name="upButton" Width="15" Height="21" Command="ScrollBar.PageUpCommand" Margin="0,-1,-1,0" Style="{DynamicResource InRibbonGalleryRepeatButton}">
        												<Path RenderOptions.EdgeMode="Aliased" Data="M0,0 L1,-1 2,0z" Fill="Black" Width="5" Height="3" Stretch="Fill"/>
        											</RepeatButton>
        											<RepeatButton x:Name="downButton" Width="15" Height="21" Command="ScrollBar.PageDownCommand" Margin="0,-1,-1,0" Style="{DynamicResource InRibbonGalleryRepeatButton}">
        												<Path RenderOptions.EdgeMode="Aliased" Data="M0,0 L1,1 2,0z" Fill="Black" Width="5" Height="3" Stretch="Fill"/>
        											</RepeatButton>
        										</StackPanel>
        									</ControlTemplate>
        								</Setter.Value>
        							</Setter>
									<Setter Property="ContextMenu" Value="{x:Null}"/>
        						</Style>
        					</Fluent:RibbonListBox.Resources>
        					<Fluent:RibbonListBox.ItemsPanel>
        						<ItemsPanelTemplate>
        							<WrapPanel />
        						</ItemsPanelTemplate>
        					</Fluent:RibbonListBox.ItemsPanel>
        				</Fluent:RibbonListBox>
        				<Fluent:ToggleButton HorizontalAlignment="Right" VerticalAlignment="Bottom" Width="15" Height="20" x:Name="PART_ExpandButton" Style="{DynamicResource InRibbonGalleryButton}" Margin="0,0,-1,-1" UseAutoCheck="False" ClickMode="Pressed" CanAddToQuickAccessToolBar="False"/>
        			</Grid>
        		</Border>
        		<Fluent:ToggleButton Margin="0,0,0,0" Visibility="Collapsed" x:Name="PART_DropDownButton" 
				Icon="{Binding Path=Icon, RelativeSource={RelativeSource TemplatedParent}}"
				LargeIcon="{Binding Path=LargeIcon, RelativeSource={RelativeSource TemplatedParent}}"
				Text="{Binding Path=Text, RelativeSource={RelativeSource TemplatedParent}}"
				Size="{Binding Path=Size, RelativeSource={RelativeSource TemplatedParent}}"
				SizeDefinition="{Binding Path=SizeDefinition, RelativeSource={RelativeSource TemplatedParent}}"
				Style="{DynamicResource InRibbonGalleryToggleButtonStyle}" HorizontalAlignment="Left" VerticalAlignment="Top" UseAutoCheck="False" ClickMode="Pressed" CanAddToQuickAccessToolBar="False"
				/>
        	</Grid>
          <ControlTemplate.Triggers>
        		<Trigger Property="IsEnabled" Value="False">
        			<Setter Property="IsEnabled" TargetName="PART_DropDownButton" Value="False"/>
        			<Setter Property="IsEnabled" TargetName="PART_ExpandButton" Value="False"/>
        		</Trigger>
        		<Trigger Property="IsCollapsed" Value="True">
        			<Setter Property="Visibility" TargetName="border" Value="Collapsed"/>
        			<Setter Property="Visibility" TargetName="PART_DropDownButton" Value="Visible"/>
        			<Setter Property="VerticalAlignment" TargetName="PART_LayoutRoot" Value="Top"/>
        			<Setter Property="HorizontalAlignment" TargetName="PART_LayoutRoot" Value="Left"/>
        		</Trigger>
        	</ControlTemplate.Triggers>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
    <Setter Property="Margin" Value="2,3,3,0"/>
</Style>
</ResourceDictionary>